package main

import (
	"fmt"

	"github.com/gin-gonic/gin"
)

func main() {
	// 创建示例数据文件（如果不存在）
	if err := createExamplesDataFile("examples.txt"); err != nil {
		fmt.Printf("创建示例数据文件失败: %v\n", err)
		return
	}

	// 从文件加载示例数据
	examples, err := loadExamplesFromFile("examples.txt")
	if err != nil {
		fmt.Printf("加载示例数据失败: %v\n", err)
		return
	}

	if len(examples) == 0 {
		fmt.Println("没有加载到示例数据，退出程序")
		return
	}

	// 创建目录结构
	createDirectoryStructure()

	// 生成示例内容
	generateExampleContent(examples)

	// 启动Web服务器
	startWebServer(examples)
}

// startWebServer 启动Web服务器
func startWebServer(examples []Example) {
	// gin.SetMode(gin.ReleaseMode)
	r := gin.Default()
	r.SetTrustedProxies([]string{"127.0.0.1"})

	// 设置静态文件服务
	r.Static("/static", "./static")
	r.Static("/content", "./content")

	// 首页路由
	r.GET("/", indexHandler(examples))

	// 示例页面路由
	r.GET("/:example/", exampleHandler(examples))

	// 文件展示路由
	r.GET("/:example/files/:filename", fileDisplayHandler(examples))

	fmt.Println("网站结构生成完成！")
	fmt.Println("目录结构:")
	fmt.Println("content/          - 示例内容")
	fmt.Println("templates/        - HTML模板")
	fmt.Println("static/           - 静态资源")
	fmt.Println("examples.txt      - 示例数据文件")
	fmt.Println()
	fmt.Println("启动Web服务器 :8080 端口...")
	r.Run(":8080")
}